const Message = require('../models/Message');

// 发送消息
const sendMessage = async (req, res) => {
  try {
    const { user_id, character_id, content, sender } = req.body;

    // 验证必要字段
    if (!user_id || !character_id || !content || !sender) {
      return res.status(400).json({ error: '请提供完整的消息信息' });
    }

    // 创建消息
    const message = await Message.create(user_id, character_id, content, sender);

    res.status(201).json(message);
  } catch (err) {
    console.error('发送消息错误:', err);
    res.status(500).json({ error: '发送消息失败' });
  }
};

// 获取与角色的对话历史
const getCharacterMessages = async (req, res) => {
  try {
    const { characterId } = req.params;

    // 获取对话历史
    const messages = await Message.findByCharacterId(characterId);

    res.json(messages);
  } catch (err) {
    console.error('获取消息历史错误:', err);
    res.status(500).json({ error: '获取消息历史失败' });
  }
};

// 获取特定用户与角色的对话历史
const getUserCharacterMessages = async (req, res) => {
  try {
    const { userId, characterId } = req.params;

    // 获取对话历史
    const messages = await Message.findByUserAndCharacter(userId, characterId);

    res.json(messages);
  } catch (err) {
    console.error('获取消息历史错误:', err);
    res.status(500).json({ error: '获取消息历史失败' });
  }
};

module.exports = {
  sendMessage,
  getCharacterMessages,
  getUserCharacterMessages
};